package com.xs.dbs;

/**
 * @author xs
 * date 2019-04-29 9:47
 */
public class DataSourceContextHolder {

    /**
     * 系统中存在一些异步任务，比如说使用@Async注解的方法
     * 如果不使用这个实现类，则无法向子线程传递租户信息
     */
    private static final ThreadLocal<DatabaseType> contextHolder  = new InheritableThreadLocal<>();

    public static void setDataSourceKey(DatabaseType databaseType) {
        contextHolder.set(databaseType);
    }

    public static DatabaseType getDataSourceKey() {
        return contextHolder.get();
    }

    public static void clearDataSourceKey() {
        contextHolder.remove();
    }
}
